package Controller;

import java.util.ArrayList;
import java.util.List;

import Beans.ItemStockBean;
import DAO.HibernateItemStockDAO;
import DTO.ItemStockDTO;
import Model.ItemStock;

public class AdministradorItemStock {
	private static AdministradorItemStock instancia;
	private AdministradorItemStock(){
		
	}
	public static AdministradorItemStock getInstancia(){
		if(instancia==null)
			instancia=new AdministradorItemStock();
		return instancia;
	}
	public List<ItemStockBean> fromModelTOBean(List<ItemStock> itemsStock) {
		List<ItemStockBean> itemsStockBean=new ArrayList<ItemStockBean>();
		for (ItemStock itemStock : itemsStock) {
			ItemStockBean itemStockBean=this.fromModelTOBean(itemStock);
			itemsStockBean.add(itemStockBean);
		}
		return itemsStockBean;
	}
	
	public ItemStockBean fromModelTOBean(ItemStock itemStock) {
		ItemStockBean itemStockBean=null;
		if(itemStock!=null){
		itemStockBean=new ItemStockBean();
		itemStockBean.setIdItemStock(itemStock.getId());
		itemStockBean.setCantidad(itemStock.getCantidad());
		itemStockBean.setLote(AdministradorLote.getInstancia().fromModelTOBean(itemStock.getLote()));
		}
		return itemStockBean;
	}
	public List<ItemStock> fromDTOTOModel(List<ItemStockDTO> stockDTO) {
		List<ItemStock> itemsStock=new ArrayList<ItemStock>();
		for (ItemStockDTO itemStockDTO : stockDTO) {
			ItemStock itemStock=this.fromDTOTOModel(itemStockDTO);
			itemsStock.add(itemStock);
		}
		return itemsStock;
	}
	public ItemStock fromDTOTOModel(ItemStockDTO itemStockDTO) {
		ItemStock itemStock=null;
		if(itemStockDTO!=null){
		itemStock=new ItemStock();
		itemStock.setId(itemStockDTO.getId());
		itemStock.setCantidad(itemStockDTO.getCantidad());
		itemStock.setLote(AdministradorLote.getInstancia().fromDTOTOModel(itemStockDTO.getLote()));
		}
		return itemStock;
	}
	
	public List<ItemStockDTO> fromModelTODTO(List<ItemStock> stock) {
		List<ItemStockDTO> itemsStockDTO=new ArrayList<ItemStockDTO>();
		for (ItemStock itemStock : stock) {
			ItemStockDTO itemStockDTO=this.fromModelTODTO(itemStock);
			itemsStockDTO.add(itemStockDTO);
		}
		return itemsStockDTO;
	}
	public ItemStockDTO fromModelTODTO(ItemStock itemStock) {
		ItemStockDTO itemDTO=null;
		if(itemStock!=null){
			itemDTO=new ItemStockDTO();
			itemDTO.setCantidad(itemStock.getCantidad());
			itemDTO.setId(itemStock.getId());
			itemDTO.setLote(AdministradorLote.getInstancia().fromModelTODTO(itemStock.getLote()));
		}
		return itemDTO;
	}
	
	public List<ItemStock> fromBeanTOModel(List<ItemStockBean> stockBean) {
		List<ItemStock> itemsStock=new ArrayList<ItemStock>();
		for (ItemStockBean itemStockBean : stockBean) {
			ItemStock itemStock=this.fromBeanTOModel(itemStockBean);
			itemsStock.add(itemStock);
		}
		return itemsStock;
	}
	public ItemStock fromBeanTOModel(ItemStockBean itemStockBean) {
		ItemStock itemStock=null;
		if(itemStockBean!=null){
		itemStock=new ItemStock();
		itemStock.setId(itemStockBean.getIdItemStock());
		itemStock.setCantidad(itemStockBean.getCantidad());
		itemStock.setLote(AdministradorLote.getInstancia().fromBeanTOModel(itemStockBean.getLote()));
		}
		return itemStock;
	}
	public ItemStock buscarItemStock(ItemStock a) {
		ItemStockBean ab=fromModelTOBean(a);
		ab=HibernateItemStockDAO.getInstancia().buscarItemStock(ab);
		return fromBeanTOModel(ab);
	}
	
}
